/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package classes;

import javax.swing.JOptionPane;


/**
 * Classe que corresponde a tela de usuario do sistema, usando interface grafica.
 * @author alisson
 */
public class TelaDeUsuario extends javax.swing.JFrame {
	
	
	private static final long serialVersionUID = 1L;
	private Professor proprietario;
    private javax.swing.JButton botaoAddLivro;
    private javax.swing.JButton botaoPesqLivro;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem menuAlteraSenha;
    private javax.swing.JMenuItem menuExclueConta;
    private javax.swing.JMenuItem menuSobre;
 
    
    /**
     * Cria uma tela de usuario.
     */
    public TelaDeUsuario(Professor dono) {
    	this.proprietario = dono;
        initComponents();
    }

    /**
     * Componentes que compoe a tela de usuario e seus campos, onde o usuario digita seus dados.
     */
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        botaoAddLivro = new javax.swing.JButton();
        botaoPesqLivro = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        menuAlteraSenha = new javax.swing.JMenuItem();
        menuExclueConta = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        menuSobre = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Principal - Biblioteca");
        setResizable(false);

        jLabel1.setText("Seja Bem vindo(a) ");

        botaoAddLivro.setText("Adicionar livro");
        botaoAddLivro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoAddLivroActionPerformed(evt);
            }
        });

        botaoPesqLivro.setText("Pesquisar livro");
        botaoPesqLivro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoPesqLivroActionPerformed(evt);
            }
        });

        jMenu1.setText("Menu");

        menuAlteraSenha.setText("Alterar senha");
        menuAlteraSenha.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuAlteraSenhaActionPerformed(evt);
            }
        });
        jMenu1.add(menuAlteraSenha);

        menuExclueConta.setText("Excluir conta");
        menuExclueConta.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuExclueContaActionPerformed(evt);
            }
        });
        jMenu1.add(menuExclueConta);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Ajuda");

        menuSobre.setText("Sobre");
        jMenu2.add(menuSobre);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel1)
                    .addComponent(botaoAddLivro, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(botaoPesqLivro, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE))
                .addContainerGap(183, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(56, 56, 56)
                .addComponent(botaoAddLivro)
                .addGap(18, 18, 18)
                .addComponent(botaoPesqLivro)
                .addContainerGap(45, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    
    /**
     * Metodo que possibilita ao usuario modificar sua senha.
     * @param evt
     * 		Variavel para manipular metodos da biblioteca.
     */
    private void menuAlteraSenhaActionPerformed(java.awt.event.ActionEvent evt) {
    	
    	String novaSenha = JOptionPane.showInputDialog(null, "Digite a nova senha");
    	if (novaSenha.length() > 0) {
        	try {
    			proprietario.getLogin(proprietario).setSenha(novaSenha);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
		}
    	else {
			JOptionPane.showMessageDialog(null, "Senha vazia. Tente novamente!");
		}
        
    }

    
    /**
     * Adiciona livro na biblioteca.
     * @param evt
     * 		Variavel para manipular metodos da biblioteca.
     */
    private void botaoAddLivroActionPerformed(java.awt.event.ActionEvent evt) {
    	Biblioteca.telaCadastroDeLivro = new TelaCadastroDeLivro(proprietario);
    	Biblioteca.telaCadastroDeLivro.setLocationRelativeTo(null);
        Biblioteca.telaCadastroDeLivro.setVisible(true);	
    }

    /**
     * Permiti pesquisar um livro na biblioteca.
     * @param evt
     * 		Variavel para manipular metodos da biblioteca.
     */
    private void botaoPesqLivroActionPerformed(java.awt.event.ActionEvent evt) {
        Biblioteca.telaPesquisa = new TelaPesquisaLivro();
        Biblioteca.telaPesquisa.setVisible(true);
    }

    
    /**
     * Metodo que possibilita o usuario excluir sua conta.
     * @param evt
     * 		Variavel para manipular metodos da biblioteca.
     */
    private void menuExclueContaActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }
    
    /**
     * Recupera um professor da classe Professor.
     * @return
     * 		Retorna um professor
     */
    public Professor getProprietario(){
    	return proprietario;
    }
}
